package ModelLag;
import java.util.ArrayList;

/**
 * klasse som indeholder og haandterer objekter af typen Salg. 
 */
public class SalgContainer
{

    private ArrayList<Salg> salgs;
    private static SalgContainer instance;

    /**
     * Construktor som initialiserer et array, der kan indeholde Salgs objekter
     */
    private SalgContainer()
    {
        // initialise instance variables
        salgs = new ArrayList<Salg>();
    }
    /**
     * singleton
     */
    public static SalgContainer getInstance()
    {
        if(instance == null)
        {
            instance = new SalgContainer();
        }
        return instance;
    }
    
    /**
     * metode til at tilfoeje et Salgs objekt til arrayet "salgs"
     */
    public void tilfoejOrdre(Salg s)
    {
        salgs.add(s);
    }
    /**
     * metode til at finde et Salg objekt ud fra et ordreNr
     * @param ordreNr
     * @returns Salg
     */
    public Salg findOrdre(long ordreNr)
    {
        int index = 0;
        int index2 = 0;
        boolean found = false;
        while(index < salgs.size() && !found)
        {
            Salg s = salgs.get(index);
            if(s.getOrdreNr() == (ordreNr))
            {
                index2 = index;
                found = true;
            }
            index++;
        }
        return salgs.get(index2);
    }
    
    /**
     * metode som sletter et givent Salg objekt
     * @param Salg
     */
    public void sletOrdre(Salg s)
    {
        salgs.remove(s);
    }
    
    /**
     * metode som retunerer arrayet salgs
     * @returns salgs (ArrayList)
     */
    public ArrayList<Salg> getSalgs()
    {
        return salgs;
    }
    
    /**
     * metode som tjekker en ordrer med et givent ordrenr findes.
     * @returns true hvis den findes. false hvis ikke
     * @param ordreNr
     */
    public boolean check(long ordreNr)
    {
        Salg s = findOrdre(ordreNr);
        if(s != null)
        {
            return true;
        }
        else
        {
            return false;
        }
    }

}
